﻿using System;
using System.Collections.Generic;
using System.Text;
using UnityEngine;

// 访问者模式 每帧会影响性能!!
// 该类用于统计场上存活的角色数量,将被传递给所有角色
public class AliveCountVisitor:ICharacterVisitor
{
    public int enemyCount { get; private set; }
    public int soldierCount { get; private set; }

    public void Reset()
    {
        enemyCount = 0;
        soldierCount = 0;
    }
    // 定义访问记录的方法,传递的是角色,实现的是下面的方法
    public override void VisitEnemy(IEnemy enemy)
    {
        if(enemy.isKilled==false)
            enemyCount += 1;
    }

    public override void VisitSoldier(ISoldier soldier)
    {
        if(soldier.isKilled==false)
            soldierCount += 1;
    }
}
